追加列:alter table 表名
修改列数据类型:alter table 表明
修改列数据类型+默认值:alter table 表明
修改列约束类型:alter table 表明
修改列约束类型:alter table 表明
修改列名: alter table 表明
删除列:alter table 表明
修改表名:rename 原表名 to 新表名 (注:没有table关键字)
截断表:truncate table 表名
特点1:清空数据,保留表结构
特点2:清空数据时不能给条件
特点3:隐式事务,不能回滚
删除表:drop table 表名
追加列:add
注:oracle只能最后一列追加列,不能向指定列添加数据
| --向最后追加两列,要写明数据类型
SQL> alter table emp1 add (sal number(8,2),cmd varchar2(8));
Table altered
|
修改列数据类型:
| --将cmd字段类型改为数字类型
SQL> alter table emp1 modify (cmd number(2));
Table altered
--修改约束类型
SQL> alter table emp1 MODIFY (ename not null,job not null);
|
修改列数据类型+默认值:alter table 表明
注:当有需要清空默认值时,使用null
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 | --原表数据结构
SQL> desc emp1;
Name Type Nullable Default Comments
---------- ----------- -------- ------- --------
ID NUMBER(2) Y
NAME VARCHAR2(8) Y
AGE NUMBER(2) Y
START_DATE DATE Y
SAL NUMBER(8,2) Y
CMD NUMBER(2) Y
--修改cmd字段,数据类型为varchar2 + 默认值owner
SQL> alter table emp1 modify (cmd varchar2(20) default 'owner');
Table altered
SQL> desc emp1;
Name Type Nullable Default Comments
---------- ------------ -------- ------- --------
ID NUMBER(2) Y
NAME VARCHAR2(8) Y
AGE NUMBER(2) Y
START_DATE DATE Y
SAL NUMBER(8,2) Y
CMD VARCHAR2(20) Y 'owner' ' '
--清空默认值
SQL> alter table emp1 modify (cmd default null);
Table altered
SQL> desc emp1;
Name Type Nullable Default Comments
---------- ------------ -------- ------- --------
ID NUMBER(2) Y
NAME VARCHAR2(8) Y
AGE NUMBER(2) Y
START_DATE DATE Y
SAL NUMBER(8,2) Y
CMD VARCHAR2(20) Y null
|
修改列名: alter table 表明
1
2
3
4
5
6
7
8
9
10
11
12
13 | --将列名sal改为sals
SQL> alter table emp1 rename column sal to sals;
Table altered
SQL> desc emp1;
Name Type Nullable Default Comments
---------- ------------ -------- ------- --------
ID NUMBER(2) Y
NAME VARCHAR2(8) Y
AGE NUMBER(2) Y
START_DATE DATE Y
SALS NUMBER(8,2) Y
CMD VARCHAR2(20) Y null
|
删除列:alter table 表明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 | --查看原表结构
SQL> desc emp1;
Name Type Nullable Default Comments
---------- ------------ -------- ------- --------
ID NUMBER(2) Y
NAME VARCHAR2(8) Y
AGE NUMBER(2) Y
START_DATE DATE Y
SALS NUMBER(8,2) Y
CMD VARCHAR2(20) Y null
--删除cmd字段列
SQL> alter table emp1 drop column cmd;
Table altered
--验证删除的cmd字段列
SQL> desc emp1;
Name Type Nullable Default Comments
---------- ----------- -------- ------- --------
ID NUMBER(2) Y
NAME VARCHAR2(8) Y
AGE NUMBER(2) Y
START_DATE DATE Y
SALS NUMBER(8,2) Y
|
修改表名:rename 原表名 to 新表名
很少这么做,但要会!
| --将emp2改名为emp222
SQL> rename emp2 to emp222;
Table renamed
|
截断表:truncate table 表名
简单讲就是不可回滚的直接清空表数据
| SQL> truncate table emp222;
Table truncated
|